%!TEX program = xelatex
\documentclass[lang=cn,11pt,a4paper,citestyle =authoryear]{elegantpaper}

% 标题区域
\title{GSL例程roots.c探索与解析}
\author{强基数学2001 \\ 关博仁}
\date{\zhtoday}

% 本文档命令
\usepackage{array,url,subfigure,stfloats}
\usepackage[lined,boxed,commentsnumbered]{algorithm2e}
\newcommand{\ccr}[1]{\makecell{{\color{#1}\rule{1cm}{1cm}}}}
\newcommand{\code}[1]{\lstinline{#1}}

% 文档区
\begin{document}

% 建立标题
\maketitle

% 摘要
\begin{abstract}
本文为浙江大学2021-2022短学期王何宇老师的《数学软件》课程作业，本文将简单介绍GSL库中的例程\code{roots.c}的功能与方法，并介绍Brent方法的基本思想与部分理论知识。本次作业将会发布到仓库\href{https://gitee.com/wellsguan/mathematics-software/tree/master/Day4}{Gitee/Day6}中。
\keywords{GSL, 科学计算, Brent算法}
\end{abstract}

% 例程结果
\section{例程结果}

以下是\code{roots.c}经过编译后运行的结果: 

\begin{lstlisting}
using brent method
 iter [    lower,     upper]      root        err  err(est)
    1 [1.0000000, 5.0000000] 1.0000000 -1.2360680 4.0000000
    2 [1.0000000, 3.0000000] 3.0000000 +0.7639320 2.0000000
    3 [2.0000000, 3.0000000] 2.0000000 -0.2360680 1.0000000
    4 [2.2000000, 3.0000000] 2.2000000 -0.0360680 0.8000000
    5 [2.2000000, 2.2366300] 2.2366300 +0.0005621 0.0366300
Converged:
    6 [2.2360634, 2.2366300] 2.2360634 -0.0000046 0.0005666
\end{lstlisting}

结合输出并且阅读源代码可知, 本质上\code{roots}是对于二次型:
\[F(x) = ax^2+bx+c, a=1, b=0, c=-5\]
进行求根，使用的方法是Brent算法。

% 算法分析
\section{Brent算法}

Brent算法本质上是综合二分法和抛物线插值法的优化方法，具体可以参考[\cite{press2007numerical}]

% 参考文献区
\nocite{*}
\printbibliography[heading=bibintoc, title=\ebibname]
\newpage

\end{document}
